Regex 正则表达式删除十进制值
给出以下ISO 8601格式的时间戳:Regex 正则表达式删除十进制值,regex,Regex,给出以下ISO 8601格式的时间戳: 2012-04-21T01:56:00.581550 什么正则表达式会删除小数点和毫秒精度?换句话说,一个适用于上述内容并返回以下内容的正则表达式: 2012-04-21T01:56:00 这可能非常简单,但由于不太熟悉regex,我不确定如何解决这个问题。提前感谢您的帮助。如果您必须使用regex,您可以使用“[.][0-9]+$”并将其替换为空字符串”。 更容易找到尾随的。,并在其索引处切掉字符串。在C#中,这将是 myStr = myStr.Su
2012-04-21T01:56:00.581550
什么正则表达式会删除小数点和毫秒精度?换句话说,一个适用于上述内容并返回以下内容的正则表达式:
2012-04-21T01:56:00
这可能非常简单,但由于不太熟悉regex,我不确定如何解决这个问题。提前感谢您的帮助。如果您必须使用regex,您可以使用
“[.][0-9]+$”
并将其替换为空字符串”
。
更容易找到尾随的。
,并在其索引处切掉字符串。在C#中,这将是
myStr = myStr.Substring(0, myStr.LastIndexOf('.')-1);
如果必须使用正则表达式,可以使用
“[.][0-9]+$”
并将其替换为空字符串”
。
更容易找到尾随的。
,并在其索引处切掉字符串。在C#中,这将是
myStr = myStr.Substring(0, myStr.LastIndexOf('.')-1);
看起来你可以假设只有一个点。上面的sed表达式找到一个点,然后替换该点之后的所有内容,直到换行符中没有任何内容
不带sed:将\..*$
替换为空字符串“”
\。
是文字句点(必须转义它,因为
表示任何字符)
*
表示任何和所有字符
$
表示行尾
看起来你可以假设只有一个点。上面的sed表达式找到一个点,然后替换该点之后的所有内容,直到换行符中没有任何内容
不带sed:将\..*$
替换为空字符串“”
\。
是文字句点(必须转义它,因为
表示任何字符)
*
表示任何和所有字符
$
表示行尾此regex^[\w\-:]+
将只匹配到该期间,并且不包括该期间。您可以使用它来查找所需时间戳的部分
是字符串的开头^
是任何“单词”\w
包括连字符\-
包括冒号:
- 放置在
中的这些字符表示仅匹配这些字符[]
表示匹配这些字符的一个或多个实例+
由于不包括句点(
),正则表达式将在到达该句点时停止匹配。此正则表达式^[\w\-:]+
将只匹配到该句点并将其排除。您可以使用它来查找所需时间戳的部分
是字符串的开头^
是任何“单词”\w
包括连字符\-
包括冒号:
- 放置在
中的这些字符表示仅匹配这些字符[]
表示匹配这些字符的一个或多个实例+
由于不包括句点(
),因此当到达该句点时,正则表达式将停止匹配。为什么要使用正则表达式?
使用字符串操作
在python中:
>>> "2012-04-21T01:56:00.581550".split(".")
['2012-04-21T01:56:00', '581550']
>>> "2012-04-21T01:56:00.581550".split(".")[0]
'2012-04-21T01:56:00'
为什么要使用正则表达式? 使用字符串操作 在python中:
>>> "2012-04-21T01:56:00.581550".split(".")
['2012-04-21T01:56:00', '581550']
>>> "2012-04-21T01:56:00.581550".split(".")[0]
'2012-04-21T01:56:00'
代码:
测试:
输出:
代码:
测试:
输出:
我同意regex在这方面做得过火,甚至可能会出错。谢谢,有一种方法可以根据我使用的语言中的分隔符拆分字符串,因此这似乎是更好的方法。我同意regex在这方面做得过火,甚至可能会出错。谢谢,有一种方法可以根据我使用的语言中的分隔符拆分字符串,因此这似乎是更好的方法。
2012-04-21T01:56:00