Regex,它搜索一个起始字符,介于两者之间的任何字符,然后是一个结束字符
Regex that searches for a starting character, anything in between, then an ending character?
所以,基本上,我有一个从我的网站复制的大量值列表,希望它们只是纯文本。我需要为Javascript创建一个正则表达式,删除不需要的东西
以下是眼前的价值观:
<option value="111122223333">Some text (45)</option>
<option value="345835385390">Some text (10)</option>
<option value="456727235764">Some text (50)</option>
以下是他们之后需要的样子:
Some text
Some text
Some text
使用1个正则表达式可以做到这一点吗?还是需要许多正则表达式?
我的想法是,正则表达式查找介于两者之间的<
,然后>
可以用于打开和关闭option
标记。然后,可以稍微修改regex,以查找打开(
,然后关闭)
,以删除"Some text"字符串左侧的计数器数字。
仍然在学习regex,所以如果有人能在他们的答案中添加一个小的解释,让我对它有一些了解,那就太好了。谢谢。
如果您可以使用像jQuery这样的库,那么您可能可以简化它。在这种情况下,您可以使用jQuery对象的text()方法来获取内部文本,然后运行一个简单的regex来删除"(xx)"部分:
var vals = $('option').map(function() {
return $(this).text().replace(/'s*'('d*')$/, '');
});
// vals => ["some text", "some text", "some text"]
这是一把小提琴:http://jsfiddle.net/jhummel/U46pH/
如果你不能使用库,我想你正在寻找一个正则表达式,比如:
/<[^>]+>([^'(]+)'('d*')<[^>]+>/g
编辑
您要求提供正则表达式的解释,让我们逐一查看
- /=启动正则表达式
- <=查找'<'字符
- [^>]+=一次或多次查找任何不是'>'的字符
- >=查找'>'字符
- (=启动一个组,parens中的任何内容都将保存以备以后使用
- [^(]+=查找一次或多次非"("字符-需要用反斜杠转义,因为paren是regex中的保留字符
- )=关闭组
- (=找到一个"("字符-需要再次使用反斜杠对其进行转义
- ''d*=查找任何数字零次或多次
- )=找到一个")"字符-再次转义
- <=查找'<'字符
- [^>]+=找到一个或多个音符为'>'的任何字符
- >=查找'>'字符
- /=结束正则表达式
- g=正则表达式标志。意味着在第一场比赛后发现所有比赛都没有停止
如果这就是您希望完成的全部,那么您可以使用以下内容:
(>)(.+)(<)
然后把第二组从比赛中抢出来。
编辑:括号用于表示组。
相关文章:
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 正则表达式搜索一个空格,后跟一个字符
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- Javascript:删除冒号的最后一个字符
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 为什么regex只验证字段中的一个字符,而不是所有输入的字符
- 如何在单击时从输入字段中删除最后一个字符
- 如何检测每个连续字符与前一个字符相差最小字母差的字符序列(1)
- 使用javascript验证只有一个特殊字符的字符串
- 在跨度中每3个字符添加一个空格
- 如何在JavaScript中每隔第n个字符分割一个字符串
- 为什么jQuery正在删除文本的最后一个字符
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- 匹配点之后的任何字符,直到下一个点或行尾