Regex 正则表达式以获取;“左”;只从风格上看
这是我的正则表达式,用于获取“left”及其值Regex 正则表达式以获取;“左”;只从风格上看,regex,Regex,这是我的正则表达式,用于获取“left”及其值 /(left\s*:\s*)(\d+)?(px)/ 我的问题是,它把填充物向左拉 vertical-align: top; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: list-item; width: 420px; position: absolute; top: 0px; left: 700px; height:
/(left\s*:\s*)(\d+)?(px)/
我的问题是,它把填充物向左拉
vertical-align: top; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: list-item; width: 420px; position: absolute; top: 0px; left: 700px; height: 580px;
我怎样才能得到“左”及其唯一值
我在左边前面放了一个\s,这样就行了。。。但我不能总是保证在左边前面会有一个空间
谢谢
/(?:^|[^-])(left)\s*:\s*(\d+|auto)([a-z]{2})?/
将在组1中使用“left”,在组2中使用“700”,在组3中使用“px”获取所需内容
(?:^ |[^-])
=字符串的开头或非连字符
(左)
=单词left(捕获组1)
\s*:\s*
=两边都有可选空格字符的冒号
(\d+| auto)
=一个或多个数字,或字符串“auto”(捕获组2)
([a-z]{2})
=两个字母,例如“px”“em”“pt”(捕获组3-可选)
将在组1中使用“left”,在组2中使用“700”,在组3中使用“px”获取所需内容
(?:^ |[^-])
=字符串的开头或非连字符
(左)
=单词left(捕获组1)
\s*:\s*
=两边都有可选空格字符的冒号
(\d+| auto)
=一个或多个数字,或字符串“auto”(捕获组2)
([a-z]{2})
=两个字母,例如“px”“em”“pt”(捕获组3-可选)您可以使用CSS解析器来代替正则表达式。这是一个更健壮的解决方案,因为解析器更适合此任务
使用Python和
example.css
向左走
在这个Python脚本中,prop.name
将返回属性的名称和prop.value
其值
/(left\s*:\s*)(\d+)?(px)/
输出
您可以使用CSS解析器,而不是使用正则表达式。这是一个更健壮的解决方案,因为解析器更适合此任务 使用Python和 example.css 向左走 在这个Python脚本中,
prop.name
将返回属性的名称和prop.value
其值
/(left\s*:\s*)(\d+)?(px)/
输出
您使用的是哪种语言/工具。如果是javascript,为什么不与DOM本身交互
document.getElementsById(id).style.left代码>为什么要捕获“左”?它是一个常量——你已经知道它是什么了。你使用的是哪种语言/工具。如果它的javascript是javascript,为什么不与DOM本身交互呢document.getElementsById(id).style.left代码>为什么要捕获“左”?这是一个常数——你已经知道它是什么了!然而,我遇到了一个问题,有时值是“自动”而不是“0”。。。如何获得自动或d+示例:垂直对齐:顶部;填充顶部:0px;右边填充:0px;垫底:0px;左侧填充:0px;显示:列表项;宽度:700px;位置:绝对位置;顶部:自动;左:自动;高度:1220px@no1uknow查看更新-只需将(\d+)
转换为带有管道|
字符的'or'语句,因此它现在是(\d+| auto)
@no1uknow此更新将匹配“left:autotx;”-我将此作为一种可能性,因为我看不出这是一个问题,它将略微增加表达式的复杂性(并降低可读性),但如果需要的话,我当然可以消除这种可能性。但是,我遇到了一个问题,有时值是“自动”而不是“0”…如何获取自动或d+示例:垂直对齐:顶部;顶部填充:0px;右侧填充:0px;底部填充:0px;左侧填充:0px;显示:列表项;宽度:700px;位置:绝对;顶部:自动;左侧:自动;高度:1220px;@no1uknow查看更新-只需转动(\d+)
转换为带有管道|
字符的'or'语句,因此现在是(\d+| auto)
@no1uknow此更新将匹配“left:autox;”-我将此作为一种可能性,因为我看不出这是一个问题,它将略微增加表达式的复杂性(并降低可读性),但如果需要,我当然可以排除这种可能性
$ ./get-left.py
left: 700px