I'm trying to write a regex to scrape text for a jobs site I'm building. I'm relatively new to scraping (and coding) and have been using Parsehub to assist with the former. That's useful for scraping where a job element consistently matches an html element (eg job_title matches , same position, on a page). I can use Parsehub to scrape a relevant block of text but I'll need to use a regex to give Parsehub more direction when the info I need can only be distinguished in relation to other text. I've spent hours trying to figure out the following. For example, I want to extract the deadline date from the following text:  To Apply Deadline for applications is the 10th January 2021. Interviews will take place in the third week of January 2021.  I've written the regex: /Deadline for applications is the\s([0-9a-zA-Z]\w*)\s([0-9a-zA-Z]\w*)\s([0-9a-zA-Z]\w*)  But how do I pull just the groups 1-3? If I add \1 or $1 for example, at the end, I get an error &quot;regular expression does not match the subject string.&quot; I have some way to go in learning here but if anyone has some pointers, they'd be much appreciated. Once I get the basic principles of the above, I'll be in a much better place.
8109
I want to match a portion of a string using a  and then access that parenthesized substring:  var myString = "something format_abc"; // I want "abc"  var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);  console.log(arr);     // Prints: [" format_abc", "abc"] .. so far so good. console.log(arr[1]);  // Prints: undefined  (???) console.log(arr[0]);  // Prints: format_undefined (!!!)   What am I doing wrong?    I've discovered that there was nothing wrong with the regular expression code above: the actual string which I was testing against was this:  "date format_%A"   Reporting that "%A" is undefined seems a very strange behaviour, but it is not directly related to this question, so I've opened a new one, .    The issue was that console.log takes its parameters like a printf statement, and since the string I was logging ("%A") had a special value, it was trying to find the value of the next parameter.
66513
Is there a way to debug a regular expression in Python? And I'm not referring to the process of trying and trying till they work :)  Here is how regexes can be debugged in Perl:   use re 'debug';  my $str = "GET http://some-site.com HTTP/1.1"; if($str =~/get\s+(\S+)/i) {     print "MATCH:$1\n"; }   The code above produces the following output on my computer when ran:   Compiling REx "get\s+(\S+)" Final program:    1: EXACTF  (3)    3: PLUS (5)    4:   SPACE (0)    5: OPEN1 (7)    7:   PLUS (9)    8:     NSPACE (0)    9: CLOSE1 (11)   11: END (0) stclass EXACTF  minlen 5 Matching REx "get\s+(\S+)" against "GET http://some-site.com HTTP/1.1" Matching stclass EXACTF  against "GET http://some-site.com HTTP/1.1" (33 chars)    0           |  1:EXACTF (3)    3        |  3:PLUS(5)                                   SPACE can match 1 times out of 2147483647...    4       |  5:  OPEN1(7)    4       |  7:  PLUS(9)                                     NSPACE can match 20 times out of 2147483647...   24       |  9:    CLOSE1(11)   24       | 11:    END(0) Match successful! MATCH:http://some-site.com Freeing REx: "get\s+(\S+)"
61176
This site contains many questions that are about finding the right locator expression (XPath, CSS, etc) for an object in WebPage or about troubleshooting problems related in invalid or dynamic locators. For instance: .    How one can find a good locator expression? What tools can generate expressions matching a certain element automatically? How to troubleshoot such issues when element does not match expression?
62985
I have the following data:  http://example1.com    anchor text 1     http://example2.com    anchor text 2 http://example3.com    anchor text 3       And I would like the output to be:  http://example1.com    anchor text 1    &lt;a href="http://example1.com"&gt;anchor text 1&lt;/a&gt; http://example2.com    anchor text 2    &lt;a href="http://example1.com"&gt;anchor text 2&lt;/a&gt; http://example3.com    anchor text 3    &lt;a href="http://example1.com"&gt;anchor text 3&lt;/a&gt;   I have tried getting the code to substitute cells A1 and B1 in cell C1 like this:  ="&lt;a href="A1"&gt;B1&lt;/a&gt;"   However, I'm getting errors because of the equal sign and double quotes in the HTML code. I have tried using single quotes to escape it, but still no luck.  Anyone know how to do this? Your help is highly appreciated.
65159
I have a text file which I want to split into 64 unequal parts, according to the 64 hexagrams of the Yi Jing. Since the passage for each hexagram begins with some digit(s), a period, and two newlines, the regex should be pretty easy to write.  But how do I actually split the text file into 64 new files according to this regex? It seems like more of a task for perl. But maybe there's a more obvious way that I'm just totally missing.
66832
Given the below XML snippet I need to get a list of name/value pairs for each child under DataElements. XPath or an XML parser cannot be used for reasons beyond my control so I am using regex.  &lt;?xml version="1.0"?&gt; &lt;StandardDataObject xmlns="myns"&gt;   &lt;DataElements&gt;     &lt;EmpStatus&gt;2.0&lt;/EmpStatus&gt;     &lt;Expenditure&gt;95465.00&lt;/Expenditure&gt;     &lt;StaffType&gt;11.A&lt;/StaffType&gt;     &lt;Industry&gt;13&lt;/Industry&gt;   &lt;/DataElements&gt;   &lt;InteractionElements&gt;     &lt;TargetCenter&gt;92f4-MPA&lt;/TargetCenter&gt;     &lt;Trace&gt;7.19879&lt;/Trace&gt;   &lt;/InteractionElements&gt; &lt;/StandardDataObject&gt;   The output I need is:      [{EmpStatus:2.0},  {Expenditure:95465.00}, {StaffType:11.A}, {Industry:13}]    The tag names under DataElements are dynamic and so cannot be expressed literally in the regex. The tag names TargetCenter and Trace are static and could be in the regex but if there is a way to avoid hardcoding that would be preferable.   "&lt;([A-Za-z0-9]+?)&gt;([A-Za-z0-9.]*?)&lt;/"   This is the regex I have constructed and it has the problem that it erroneously includes {Trace:719879} in the results.  Relying on new-lines within the XML or any other apparent formatting is not an option.  Below is an approximation of the Java code I am using:  private static final Pattern PATTERN_1 = Pattern.compile(..REGEX..); private List&lt;DataElement&gt; listDataElements(CharSequence cs) {     List&lt;DataElement&gt; list = new ArrayList&lt;DataElement&gt;();     Matcher matcher = PATTERN_1.matcher(cs);     while (matcher.find()) {         list.add(new DataElement(matcher.group(1), matcher.group(2)));     }     return list; }   How can I change my regex to only include data elements and ignore the rest?
6954
I'm trying to split text in a JTextArea using a regex to split the String by \n However, this does not work and I also tried by \r\n|\r|n and many other combination of regexes. Code:  public void insertUpdate(DocumentEvent e) {     String split[], docStr = null;     Document textAreaDoc = (Document)e.getDocument();      try {         docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());     } catch (BadLocationException e1) {         // TODO Auto-generated catch block         e1.printStackTrace();     }      split = docStr.split("\\n"); }
94953
I am using Selenium with Cucumber to automate one web application, But I am stuck at one element which is not working out with the XPaths and link text   I also applied the implicit and Explicit wait,  hover mouse functionality using actions driver also  there are no iframes involved either  But nothing seems to work out. Can someone help me with this??  This is the web element I need to click and the HTML  I tried following XPaths: Upon validating on console them point to the web element but on when I using it in the script it throws the exception.   //a[contains(text(),'Logout')  //div[@class='pull-right']/a  //*[@class='logout_class curPnt']   Also attaching my code snippet
262
I don't really understand regular expressions.  Can you explain them to me in an easy-to-follow manner?  If there are any online tools or books, could you also link to them?
18468
I'm developing an algorithm to parse a number out of a series of short-ish strings. These strings are somewhat regular, but there's a few different general forms and several exceptions. I'm trying to build a set of regexes that will handle the various forms and exceptions; I'll apply them one after another to see if I get a match.   One of these forms goes something like this:  X (Y) Z   Where:   X is a number I want to capture.  Z is static, pre-defined text. it's basically how I determine whether this particular form is applicable or not. Y is a a string of unknown length and content, surrounded by parenthesis.    Also: Y is optional; it doesn't always appear in a string with Z and X. So, I want to be able to extract the numbers from all of these strings:   10 Z 20 (foo) Z 30 (bar) Z   Right now, I have a regex that will capture the first one:  ([0-9]+) +Z   My problem is that I don't know how to construct a regex that will match a series of characters if and only if they're enclosed in parenthesis. Can this be done in a single regex?
57647
What's the best way to go about validating that a document follows some version of HTML (prefereably that I can specify)? I'd like to be able to know where the failures occur, as in a web-based validator, except in a native Python app.
2940
How can I test if a RegEx matches a string exactly?  var r = /a/; r.test("a"); // returns true r.test("ba"); // returns true testExact(r, "ba"); // should return false testExact(r, "a"); // should return true
35765
I have a variable string that contains well-formed and valid XML. I need to use JavaScript code to parse this feed.  How can I accomplish this using (browser-compatible) JavaScript code?
14743
To all the 'sed' doctors out there:  How can you get 'sed' to extract a regular expression it has matched in a  line?   In other words words, I want just the string corresponding to the regular  expression with all the non-matching characters from the containing line stripped away.  I tried using the back-reference feature like below  regular expression to be isolated           gets `inserted`                here                     |                v    sed -n 's/.*\( \).*/\1/p    this works for some expressions like   sed -n 's/.*\(CONFIG_[a-zA-Z0-9_]*\).*/\1/p    which neatly extracts all macro names starting with 'CONFIG_ ....' ( found in some '*.h' file ) and prints them all out line by line             CONFIG_AT91_GPIO           CONFIG_DRIVER_AT91EMAC                    .                    .              CONFIG_USB_ATMEL           CONFIG_USB_OHCI_NEW                    .                  e.t.c.    BUT the above breaks down for something like    sed -n 's/.*\([0-9][0-9]*\).*/\1/p    this always returns single digits like                    7                  9                  .                  .                    6   rather than extracting a contiguous number field such as.                 8908078               89670890                    .                  .                    .                23019                     .                e.t.c.     P.S.: I would be grateful to feedback on how this is achieved in 'sed'.        I know how to do this with 'grep' and 'awk'       I would like to find out if my - albeit limited - understanding of        'sed' has holes in it and if there is way to do this in 'sed' which I       have simply overlooked.
56869
I have a txt file which actually is a html source of some webpage. Inside that txt file there are various strings preceded by a "title=" tag.  e.g.   &lt;div id='UWTDivDomains_5_6_2_2'  title='Connectivity Framework'&gt;    I am interested in getting the text Connectivity Framework to be extraced and written to a separate file.  Like this, there are many such tags each having a different text after the title='some text here which i need to extract '  I want to extract all such instances of the text from the html source/txt file and write to a separate txt file. The text can contain lower case, upper case letters and number only. The length of each text string(in characters) will vary.  I am using PowerGrep for windows. Powergrep allows me to search a text file with regular expression inout. I tried using the search as        title='[a-zA-Z0-9]  It shows the correct matches, but it matches only first character of the string and writes only the first character of the text string matched to the second txt file, not all string.   I want all string to be matched and written to the second file.  What is the correct regular expression or way to do what i want to do, using powergrep?  -AD.
33382
Can a regular expression match whitespace or the start of a string?  I'm trying to replace currency the abbreviation GBP with a £ symbol. I could just match anything starting GBP, but I'd like to be a bit more conservative, and look for certain delimiters around it.  &gt;&gt;&gt; import re &gt;&gt;&gt; text = u'GBP 5 Off when you spend GBP75.00'  &gt;&gt;&gt; re.sub(ur'GBP([\W\d])', ur'£\g&lt;1&gt;', text) # matches GBP with any prefix u'\xa3 5 Off when you spend \xa375.00'  &gt;&gt;&gt; re.sub(ur'^GBP([\W\d])', ur'£\g&lt;1&gt;', text) # matches at start only u'\xa3 5 Off when you spend GBP75.00'  &gt;&gt;&gt; re.sub(ur'(\W)GBP([\W\d])', ur'\g&lt;1&gt;£\g&lt;2&gt;', text) # matches whitespace prefix only u'GBP 5 Off when you spend \xa375.00'   Can I do both of the latter examples at the same time?
26213
I can't seem to find an answer to this problem, and I'm wondering if one exists. Simplified example:  Consider a string "nnnn", where I want to find all matches of "nn" - but also those that overlap with each other. So the regex would provide the following 3 matches:   nnnn nnnn nnnn   I realize this is not exactly what regexes are meant for, but walking the string and parsing this manually seems like an awful lot of code, considering that in reality the matches would have to be done using a pattern, not a literal string.