[英]regular expression to identify and extract two different strings from parent string
[英]Regular Expression to identify all camel cased strings in a document
我对正则表达式不满意,需要一些帮助。 继承的js代码库将驼峰式大小写和蛇形大写字母混合使用来处理变量名和对象属性。
我正在尝试制定一个我可以使用的正则表达式,该表达式将识别所有驼峰式的字符串,然后将这些字符串替换为蛇形框。 我正在努力的部分是在我有条件的情况下识别骆驼装弦。
识别哪些字符串是驼峰大小写:在本文档中,所有驼峰大小写的字符串都以小写字母,下划线或$开头,然后在该字符串的稍后位置使用大写字母。 例如: someCamelCasedString
和_someCamelCasedString
& $someCamelCasedString
。 正则表达式需要考虑到我要匹配的某些字符串可能是对象属性,因此它应该能够识别以下内容: Foo._someCamelCasedString.bar
或Foo[_someCamelCasedString].bar
这将标识所有出现的“严格”骆驼大小写(仅字母)。 它们以_
或$
开头还是foofoo
都无关紧要。
[a-z]+[A-Z][a-zA-Z]*
cameL
情况是骆驼吗? 我以为是,但是我们可以改变它。
观看演示
如果要允许字符串中的其他字符(数字等),则可以将其添加到字符类中。 因此,这是根据您的要求进行改进的起点。
例如,如果您知道自己对数字和下划线感到满意,则可以这样做:
[a-z]\w*?[A-Z]\w*
如果您还想在名称中使用美元(@Jongware表示js字符串允许使用的字符),则可以这样做:
[a-z][\w$]*[A-Z][\w$]*
接下来是一个问题,即有效字符串的边界是什么构成的,以便我们也许可以设计一些锚点(也许偷偷摸摸的先行,因为js不支持向后看)以避免误报。
/(?:^|\s|[^\w$])([a-z_$][a-zA-Z]*[A-Z][a-zA-Z]*)/gm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.