RegEx для сопоставления телефонных номеров с Selenium в тегах HTML - PullRequest
1 голос
/ 14 мая 2019

НЕ локатор элементов. Мне нужно убедиться, что номер телефона (любой номер) находится на странице. Если бы я мог найти его в определенном элементе, это было бы замечательно.

<div id="Only456">(555) 555-1212</div>

1 Ответ

1 голос
/ 14 мая 2019

Возможно, это не лучшая идея сделать это с помощью регулярных выражений, однако, если у вас есть желание, вы можете разработать / изменить / изменить выражения в regex101.com .

enter image description here

Вы можете добавить любой символ, который у вас может быть в этом списке символов: [0-9-\s()+]

<(.+)>([0-9-\s()+]+)<\/(.+)>

Выможет также добавить больше границ, особенно вместо использования (.+).Вы также можете заменить их списком символов, например:

<(.+)>([0-9-\s()+]+)<\/([A-Za-z0-9]+)

RegEx Circuit

Вы можете визуализировать свои выражения в jex.im :

enter image description here

C # Test

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"<(.+)>([0-9-\s()+]+)<\/(.+)>";
        string substitution = @"$2";
        string input = @"<div id=""Only456"">(555) 555-1212</div>
<h1>+1 800 555-1212</h1>
<span class=""row"">555-555-1212</span>";
        RegexOptions options = RegexOptions.Multiline;

        Regex regex = new Regex(pattern, options);
        string result = regex.Replace(input, substitution);
    }
}

JavaScript Demo

const regex = /<(.+)>([0-9-\s()+]+)<\/(.+)>/gm;
const str = `<div id="Only456">(555) 555-1212</div>
<h1>+1 800 555-1212</h1>
<span class="row">555-555-1212</span>`;
const subst = `$2`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

Селен

Этот пост может быть полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...