asp.net - 重复正则表达式

标签 asp.net regex

我需要一个正则表达式来检查字符串中的每个 - 前后是否都有字母。

到目前为止我得到了这个:

(([-])?[a-zA-Z ]+[a-zA-Z]+[-]+[a-zA-Z]+[a-zA-Z ]+$|[a-zA-Z ]+$)|([a-zA-Z ])

适用于这些示例:

  • 测试员
  • tester_test
  • 测试者_测试

它不适用于以下示例:

  • 测试者_测试测试者_测试
  • 测试st_te_st_te_st

最佳答案

要确保每个下划线都被字母包围,您可以使用

(?<=[a-zA-Z])_(?=[a-zA-Z])

Regular expression visualization

Debuggex Demo

此演示适用于您的所有输入。

这使用 positive lookbehind ( (?<=...) ) 和 lookahead ((?=...))。


请考虑为 Stack Overflow Regular Expressions FAQ 添加书签备查。有一个关于您可能感兴趣的环视部分,以及底部的在线测试人员列表。

关于asp.net - 重复正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083457/

相关文章:

c# - 动态地将 javascript 与 GridView 按钮绑定(bind)

asp.net - 无法在 asp.net 中使用 ajax post 访问后面的代码

c# - 有没有办法将所有查询字符串名称/值对放入一个集合中?

javascript - 如何使用正则表达式从字符串的末尾开始匹配

java - 在 "+"符号上拆分 Java 字符串会出现错误

regex - 为什么我的替代品中的 $1 是空的?

c# - 将位置添加到单独的配置文件

c# - 为什么我的设计器属性没有在 ASPX 中序列化

C相当于Python的正则表达式

PHP:如何从一大块文本中获取 URL?