草庐IT

Preg_Replace

全部标签

hadoop - Apache pig : Replace null with string

我的数据中有很多空条目。由于后期处理,如果我可以将null的默认值设置为字符串“other”,那将非常有帮助。我找不到执行此操作的方法(版本0.8.1-cdh3u4)另外,我的GENERATE语句中有一些变量可能会返回null,我需要类似于SQLDECODE函数的东西来获取“其他”字符串而不是null。例子:tmp=FOREACHdumpGENERATEsite,REGEX_EXTRACT(name,'^(?:([^.]+)\\.?){1}',1)ASproject,((amiMATCHES'.*datatype.*')?REGEX_EXTRACT(name,'^(?:([^.]+)\

hadoop - hive : Replace string/pattern in row if it exists else do nothing

我有一张表A,其中包含ID、姓名、年龄。>idnameage>{20}Joan12>3James12>12Jill12>{54}Adam12>{10}Bill12我需要移除{}周围的“id”字段。我试过这个:translate(regexp_extract(id,'([^{])([^}])',2),'{','')它有效,但对于没有{}的值返回null。id312有没有办法让我得到输出为???id203125410 最佳答案 您可以使用regexp_replaceudf来删除“{}”,例如:selectregexp_replace(i

csv - Hive - 复杂的 regexp_replace

我不是正则表达式专家,我在Hive中使用regexp_replace时遇到问题。我想将CSV文件加载到Hive中,其中包含如下行:AAA,1234,BBB,,,"""CC,CCC""","""DDD""","""EE"EEE""",,"""AAA""",1234,BBB,,,CCCC,"""DD,DD""",,"""FFFF""",如您所见,格式并不完美字符串字段中有非转义逗号一些字符串字段用“””(3个双引号)括起来字符串字段中有非转义双引号有空字段当我尝试将其导入Hive表时,由于未转义的逗号,列无法很好地解析。所以我将原始数据作为行导入到Hive表中,如下所示:CREATEEXT

java - 将配置单元函数转换为 java - 翻译和 regexp_replace

1)如何将下面的hive部分转换为javamapreduce?translate(regexp_replace(colA,"(\\\\=)","\\\\equalto"),"\[\]\(\)\{\}\^\?\+\*\$","____________")在regexp_replace中,我将替换所有=,在外部翻译中,我将替换所有影响futureregexp_replace解析的字符。(如果我不替换这些字符,它们稍后会引发异常)。2)我是否必须使用replaceChars(),如果是,那么如何?示例字符串格式为:tag1=573tag2=ABC0nuif6dSaturn0i899AA0(W

regex - Hive - 多个字符串的 regexp_replace 函数

我正在使用配置单元0.13!我想在我的数据中找到多个标记,如“hiphop”和“rockmusic”,并将它们替换为“hiphop”和“rockmusic”——基本上替换它们时没有空格。我在配置单元中使用了regexp_replace函数。下面是我的查询,它适用于上述2个示例。droptablevp_hiphop;createtablevp_hiphopasselectuserid,ntext,regexp_replace(regexp_replace(ntext,'hiphop','hiphop'),'rockmusic','rockmusic')asntext1fromvp_nlp

REGEXP_REPLACE 捕获组

我想知道是否有人可以帮助我了解如何使用Hive的regexp_replace函数来捕获正则表达式中的组并在替换字符串中使用这些组。我有一个我正在解决的示例问题,涉及日期修改。在此示例中,我的目标是采用与SimpleDateFormat解析不兼容的字符串日期并进行小幅调整以使其兼容。日期字符串(如下所示)需要在字符串中的偏移符号(+/-)前加上“GMT”。因此,给定输入:'2015-01-0102:03:04+0:00'-or-'2015-01-0102:03:04-1:00'我想要输出:'2015-01-0102:03:04GMT+0:00'-or-'2015-01-0102:03:0

php - preg_match_all() 如何处理字符串?

我仍然在学习很多关于PHP的知识,字符串更改是我感兴趣的东西。我之前使用过preg_match来验证电子邮件地址或只是搜索查询。我刚从这篇文章中来What'swronginmyregularexpression?并且很好奇为什么preg_match_all函数会产生2个字符串,其中1个带有一些字符被剥离,另一个带有所需的输出。根据我对函数的理解,它使用RegEx逐个字符地遍历字符串,以评估如何处理它。这个正则表达式的结构是否可以绕过第一个数组条目并只产生所需的结果?这样你就不必去其他线程了$str='text^name1^Jony~text^secondname1^Smith~text

java - 替换字符串中的多个单词 ln java like php str_replace

我需要在java中找到一种类似的巧妙方法来执行多字符串替换,就像您在php中使用str_replace执行此操作一样。我想获取一个字符串,然后返回一个字符串,其中数字1到10替换为这些数字的单词。“我赢了10场比赛中的7场,获得了30美元。”=>“我赢了十场比赛中的七场比赛并获得了30美元。”在php中,你可以这样做:functionreplaceNumbersWithWords($phrase){$numbers=array("1","2","3","4","5","6","7","8","9","10");$words=array("one","two","three","four

反斜杠的 PHP str_replace

我需要在后面的字符串中用''替换\。$x="FBU4061\0258";当我执行$x=str_replace('\\','',$x);它返回FBU40618,是否有任何解决方法来获取FBU40610258。注意:我需要在双引号内执行此操作。在单引号内,它会毫无问题地返回所需的值。 最佳答案 这里可能让您感到困惑的是,双引号字符串对这个字符串的解释与单引号字符串截然不同。PHP中的字符串"FBU4061\0258"会将字符串的\02部分解释为STX(或文本开头)字符(即ASCII字符02)。只需尝试在PHP中运行代码var_dump(

php - 警告 : preg_match() [function. preg-match]:编译失败:在偏移处没有可重复的内容

我正在尝试将preg_match检查从url检查更改为用户名检查,这是可接受的最小/最大2-16chrs、破折号、空格和连字符。我收到这个错误Warning:preg_match()[function.preg-match]:Compilationfailed:nothingtorepeatatoffset14if(empty($string)||preg_match("#^([\w-]{2,16}*(?:.[\w-]{2,16}*)+):?(d+)?/?#i",$string))寻找URL的旧代码if(empty($string)||preg_match("#^(http|https