我在一个场景下面有字符串,它显示“:”冒号和其他场景冒号没有显示。我需要捕获字符串后跟的数字。我写了正则表达式来捕获数字后跟“:”冒号。请告诉我如何编写没有冒号的RegEx
字符串: 您的身份验证代码为19930,以便将TestUser添加为您帐户付款的受益人。如果您尚未要求添加此受益人,请立即联系银行00971 600 54 0000
您的身份验证码为:58738,通过在线/手机银行向Emicool支付500迪拉姆。请不要与任何人分享此代码。如果您还没有要求付款,请立即拨打00971 600 54 0000与银行联系。
粗体段落后面没有冒号“is”,斜体段落有冒号。
我编写的代码用于捕获颜色后的数字
List<WebElement> rows = driver1.findElements(By.cssSelector("tr"));
for (WebElement row : rows)
{
String text = row.getText();
if (text.contains(mobilenumber))
{
String regex = ": (\\d+)"; //Your authentication code is
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
if (matcher.find())
{
valueis = matcher.group(1);
System.out.println(valueis);
break;
我在表格中捕获了上述消息,当我使用“?:( \ d +)”时,电话号码被捕获但不是五位数。
<tr bgcolor="#EBD8B8">
<td align="left" nowrap><font face="times new roman" size=3 > 00955555555555</font></td>
<td align="left" nowrap><font face="times new roman" size=3 > 2017-04-17 14:24:37.257</font></td>
<td align="left"><font face="times new roman" size=3 > Your authentication code is 28201 to add name as beneficiary for payment from your account. If you have not requested to add this beneficiary, please contact the bank
立即00971 600 54 0000。
<td align="left" nowrap><font face="times new roman" size=3 > 00955111111111</font></td>
<td align="left" nowrap><font face="times new roman" size=3 > 2017-04-17 14:16:19.243</font></td>
<td align="left"><font face="times new roman" size=3 > Your new Online and Mobile Banking application authentication code is 81419. Please do not share this code with any person. To complete the process, please visit www.emiratesnbd.com, click on Register Online/Forgot User ID or Password, click on Forgot User ID or Password. Thank you.</font></td>
<tr>
答案 0 :(得分:0)
您可以使用?
运算符
https://regexone.com/lesson/optional_characters(也许这很有帮助)
正则表达式:
":? (\\d+)"
更新:添加前瞻DEMO
/(?=(您的身份验证代码是:?))\ 1(\ d +)/ gm
甚至更简单,没有前瞻:DEMO2使用捕获组1获取数字
/Your authentication code is:? (\d+)/gm
答案 1 :(得分:0)
^\D*(\d+)
也许这可以帮到你。