我正在使用Laravel 4.2.我试图使用Validator验证名称字段与正则表达式,这是我的规则如下:
public static $rules_save = [
'class_subjects' => 'required|regex:/[0-9]([0-9]|-(?!-))+/'
];
Run Code Online (Sandbox Code Playgroud)
但是只要我调用规则验证就会抛出错误,请参阅下面的内容:
preg_match(): No ending delimiter '/' found
Run Code Online (Sandbox Code Playgroud) 我在Postgres 8.4 中有一个po_number类型列的表varchar.它存储带有一些特殊字符的字母数字值.我想忽略这些字符[/alpha/?/$/encoding/.]并检查列是否包含数字.如果它是一个数字,那么它需要作为数字进行类型转换,否则传递null,因为我的输出字段po_number_new是一个数字字段.
以下是示例:

我厌倦了这句话:
select
(case when regexp_replace(po_number,'[^\w],.-+\?/','') then po_number::numeric
else null
end) as po_number_new from test
Run Code Online (Sandbox Code Playgroud)
但是我为显式转换得到了一个错误:

我想知道是否有人可以帮助我理解如何使用Hive的regexp_replace函数来捕获正则表达式中的组并在替换字符串中使用这些组.
我有一个示例问题,我正在通过下面的工作,涉及日期修改.在这个例子中,我的目标是获取与SimpleDateFormat解析不兼容的字符串日期,并进行一些小调整以使其兼容.日期字符串(如下所示)需要在字符串中的偏移符号(+/-)前面添加"GMT".
所以,给定输入:
'2015-01-01 02:03:04 +0:00'
-or-
'2015-01-01 02:03:04 -1:00'
Run Code Online (Sandbox Code Playgroud)
我想要输出:
'2015-01-01 02:03:04 GMT+0:00'
-or-
'2015-01-01 02:03:04 GMT-1:00'
Run Code Online (Sandbox Code Playgroud)
这是一个我认为会起作用的声明的简单例子,但我得到了奇怪的输出.
Hive查询:
select regexp_replace('2015-01-01 02:03:04 +0:00', ' ([+-])', ' GMT\1');
Run Code Online (Sandbox Code Playgroud)
实际结果:
2015-01-01 02:03:04 GMT10:00
Run Code Online (Sandbox Code Playgroud)
请注意,"\ 1"应输出匹配的组,而是使用数字"1"替换匹配的组.
有人可以帮我理解在替换字符串中引用/输出匹配组的正确方法吗?
谢谢!
我非常新的火花,并希望在数据帧的列执行操作,以替换所有,与列.
假设有一个数据帧x和列x4
x4
1,3435
1,6566
-0,34435
Run Code Online (Sandbox Code Playgroud)
我希望输出为
x4
1.3435
1.6566
-0.34435
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码是
import org.apache.spark.sql.Column
def replace = regexp_replace((x.x4,1,6566:String,1.6566:String)x.x4)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误
import org.apache.spark.sql.Column
<console>:1: error: ')' expected but '.' found.
def replace = regexp_replace((train_df.x37,0,160430299:String,0.160430299:String)train_df.x37)
Run Code Online (Sandbox Code Playgroud)
任何有关语法,逻辑或任何其他合适方式的帮助都将非常感激
我需要在一些字符串中将所有较低的字符转换为较高的字符,并将所有较低的字符转换
例如
var testString = 'heLLoWorld';
Run Code Online (Sandbox Code Playgroud)
应该
'HEllOwORLD'
Run Code Online (Sandbox Code Playgroud)
转换后.
在不保存临时字符串的情况下,实现此目的的最常用方法是什么.
如果使用正则表达式实现这样的结果,我会更好.
谢谢.
我试图提取给定字符重复的次数,并在字符串中使用它来替换它。这是一个例子:
before = c("w","www","answer","test","wwwxww")
after = c("w{1}","w{3}","answ{1}er","test","w{3}xw{2}")
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法,例如结合 gsub 和 regex 来实现这一目标?
before = c("w","www","answer","test")
after = gsub("w+",w"\\{n\\}",before)
Run Code Online (Sandbox Code Playgroud)
结果 :
after = c("w{n},"w{n}","answ{n}er","test")
Run Code Online (Sandbox Code Playgroud)
这个想法是将 n 替换为准确的出现次数
我有一个像下面这样的数据,其中有限制.我在这里向他们展示了一个观点
with t_view as (select '6-21 6-21 6-21 6-21 6-21 6-21 6-21 ' as col from dual
union
select '6-20 6-20 6-20 6-20 6-20 ' from dual
union
select '6-9 6-9 6-9 6-9 6-9 6-9 6-9 ' from dual)
Run Code Online (Sandbox Code Playgroud)
我的预期产量是
Mon: 6-21, Tue: 6-21, Wed: 6-21, Thu: 6-21, Fri: 6-21, Sat: 6-21, Sun: 6-21
Mon: 6-20, Tue: 6-20, Wed: 6-20, Thu: 6-20, Fri: 6-20
Mon: 6-9, Tue: 6-9, Wed: 6-9, Thu: 6-9, Fri: 6-9, Sat: 6-9, Sun: 6-9
Run Code Online (Sandbox Code Playgroud)
我想用这样一些独特的模式替换所有那些水平表,然后根据索引用Mon,Tue替换那个模式
$ …
我有一个数据库表(Oracle 11g)的问卷反馈,包括多项选择,多个答案问题.Options列具有用户可以选择的每个值,Answers列具有他们选择的数值.
ID_NO OPTIONS ANSWERS
1001 Apple Pie|Banana-Split|Cream Tea 1|2
1002 Apple Pie|Banana-Split|Cream Tea 2|3
1003 Apple Pie|Banana-Split|Cream Tea 1|2|3
Run Code Online (Sandbox Code Playgroud)
我需要一个能够解码答案的查询,并将答案的文本版本作为单个字符串.
ID_NO ANSWERS ANSWER_DECODE
1001 1|2 Apple Pie|Banana-Split
1002 2|3 Banana-Split|Cream Tea
1003 1|2|3 Apple Pie|Banana-Split|Cream Tea
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用正则表达式来替换值并获得子串,但我无法找到一种方法来正确合并这两者.
WITH feedback AS (
SELECT 1001 id_no, 'Apple Pie|Banana-Split|Cream Tea' options, '1|2' answers FROM DUAL UNION
SELECT 1002 id_no, 'Apple Pie|Banana-Split|Cream Tea' options, '2|3' answers FROM DUAL UNION
SELECT 1003 id_no, 'Apple Pie|Banana-Split|Cream Tea' options, '1|2|3' answers FROM DUAL )
SELECT
id_no, …Run Code Online (Sandbox Code Playgroud) 使用re模块可以对替换模式使用转义。例如:
def my_replace(string, src, dst):
import re
return re.sub(re.escape(src), dst, string)
Run Code Online (Sandbox Code Playgroud)
虽然这适用于大多数情况,但dst字符串可能包括"\\9"例如。
这会导致一个问题:
\\1, \\2... 等dst,文字将被解释为组。re.escape(dst)原因.更改为\..有没有办法在不引入多余字符转义的情况下转义目的地?
用法示例:
>>> my_replace("My Foo", "Foo", "Bar")
'My Bar'
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。
>>> my_replace("My Foo", "Foo", "Bar\\Baz")
...
re.error: bad escape \B at position 3
Run Code Online (Sandbox Code Playgroud)
这试图解释\B为具有特殊含义。
>>> my_replace("My Foo", "Foo", re.escape("Bar\\Baz"))
'My Bar\\Baz'
Run Code Online (Sandbox Code Playgroud)
作品!
>>> my_replace("My Foo", "Foo", re.escape("Bar\\Baz."))
'My Bar\\Baz\\.'
Run Code Online (Sandbox Code Playgroud)
.当我们不想要的时候,它就逃脱了。
虽然在这种情况下str.replace可以使用,但关于目标字符串的问题仍然有用,因为有时我们可能想要使用其他功能,re.sub …
我的程序看起来像这样:
import re
# Escape the string, in case it happens to have re metacharacters
my_str = "The quick brown fox jumped"
escaped_str = re.escape(my_str)
# "The\\ quick\\ brown\\ fox\\ jumped"
# Replace escaped space patterns with a generic white space pattern
spaced_pattern = re.sub(r"\\\s+", r"\s+", escaped_str)
# Raises error
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/home/swfarnsworth/programs/pycharm-2019.2/helpers/pydev/_pydev_bundle/pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "/home/swfarnsworth/programs/pycharm-2019.2/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in …Run Code Online (Sandbox Code Playgroud) regexp-replace ×10
regex ×8
oracle ×2
python ×2
sql ×2
apache-spark ×1
case ×1
conditional ×1
gsub ×1
hadoop ×1
hive ×1
javascript ×1
laravel ×1
laravel-4 ×1
php ×1
postgresql ×1
python-3.7 ×1
r ×1
replace ×1
scala ×1