菜鸟驿站收到快递后,会给大宁发送一封含有取件码的信息。 如 : You have 2 parcels to Cainiao Station. Please with 10-1-3125, 1-5-4453 pick them up before 17:00. 一个合法的取件码的格式为 A-B-C。 其中 A 为一位或两位数字,B 为一位数字,C 为四位数字,且不能有多余的数字或符号(包括换行符)。 10-1-3125、1-5-4453 是合法的取件码。 101-1-3125、10-12-315、10-1-23333 都不是合法的取件码。 现在大宁有一段短信,他太懒了以至于不想看它,请你为他提取出所有合法的取件码并 按出现顺序 输出。 如果一个合法的取件码也没有请输出 −1 。 输入数据 一段仅由可显示 ASCII 字符组成的信息。 输出数据 提取出的取件码,每个一行。 样例输入 You have 2 parcels to Cainiao Station. Please with 10-1-3125, 1-5-4453 pick them up before 17:00. 样例输出 10-1-3125 1-5-4453 样例说明 保证存在 30% 的数据,信息的长度小于 50 并且没有换行; 保证存在 20% 的数据,其中的信息只有数字和 -; 对于 100% 的数据,保证信息的长度小于 10000 。 提供额外的两组样例: 输入1: 38927-2-4309 输出1: -1 输入2: 46-79-7-2862 输出2: 79-7-2862
时间: 2024-04-11 20:33:19 浏览: 91
代码如下:
```python
import re
message = input()
pattern = r'\b(\d{1,2}-\d-\d{4})\b'
codes = re.findall(pattern, message)
if len(codes) == 0:
print(-1)
else:
for code in codes:
print(code)
```
这段代码使用正则表达式 `r'\b(\d{1,2}-\d-\d{4})\b'` 来匹配符合要求的取件码。其中 `\d{1,2}` 匹配一位或两位数字,`\d` 匹配一位数字,`\d{4}` 匹配四位数字。`\b` 是单词边界,用于确保取件码的前后不会有其他数字或符号。
`re.findall(pattern, message)` 使用正则表达式的 `findall` 方法来提取所有符合要求的取件码,并将它们存储在 `codes` 列表中。如果 `codes` 列表为空,说明没有合法的取件码,输出 `-1`。否则,遍历 `codes` 列表,逐行输出取件码。
相关问题
Stdoutput Warning: /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail. Stdoutput Please set $ACCUMULO_HOME to the root of your Accumulo installation. Exit code of the Shell command 1 <<< Invocation of Shell command completed <<< java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:410) at org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:55) at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:223) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875) at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:217) at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:153) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875) at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:141) Caused by: org.apache.oozie.action.hadoop.LauncherMainException at org.apache.oozie.action.hadoop.ShellMain.run(ShellMain.java:76) at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:104) at org.apache.oozie.action.hadoop.ShellMain.main(ShellMain.java:63) ... 16 more Failing Oozie Launcher, Main Class [org.apache.oozie.action.hadoop.ShellMain], exit code [1] Oozie Launcher, uploading action data to HDFS sequence file: hdfs://nameservice0/user/admin/oozie-oozi/0000118-230724100647793-oozie-oozi-W/shell-af10--shell/action-data.seq Stopping AM Callback notification attempts left 0 Callback notification trying http://nn.hdfs.offline:11000/oozie/callback?id=0000118-230724100647793-oozie-oozi-W@shell-af10&status=FAILED Callback notification to http://nn.hdfs.offline:11000/oozie/callback?id=0000118-230724100647793-oozie-oozi-W@shell-af10&status=FAILED succeeded Callback notification succeeded
根据您提供的信息,看起来您在运行一个 Oozie 作业时遇到了一个问题。错误信息显示无法找到 Accumulo 目录,并建议您设置 $ACCUMULO_HOME 变量为 Accumulo 安装的根目录。此外,还有一些关于 Oozie Launcher 的错误信息和回调通知。
对于此问题,您可以尝试执行以下步骤来解决:
1. 确保在您的系统中正确安装了 Accumulo,并且 ACCUMULO_HOME 变量已经设置。您可以通过在终端中运行 `echo $ACCUMULO_HOME` 来验证是否设置了此变量。如果没有设置,请根据您的安装位置手动设置此变量。
2. 检查您的 Oozie 作业配置文件中是否正确设置了 Accumulo 相关的属性。特别是,检查是否指定了正确的 Accumulo 目录路径。
3. 如果您已经确认设置了正确的 ACCUMULO_HOME 和配置文件,并且问题仍然存在,请确保在运行 Oozie 作业之前已经正确设置了环境变量。您可以在 Oozie 作业的启动脚本中添加必要的环境变量设置。
如果以上步骤无法解决问题,请提供更多关于您的环境、Oozie 作业配置和其他相关信息,以便进一步帮助您解决此问题。
ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException java.lang.NullPointerException at org.json.JSONObject.<init>(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43) at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:867) at org.apache.sqoop.mapreduce.JobBase.putSqoopOptionsToConfiguration(JobBase.java:393) at org.apache.sqoop.mapreduce.JobBase.createJob(JobBase.java:379) at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:255) at org.apache.sqoop.manager.SqlManager.importQuery(SqlManager.java:747) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:536) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:633) at org.apache.sqoop.Sqoop.run(Sqoop.java:146) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:182) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:233) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:242) at org.apache.sqoop.Sqoop.main(Sqoop.java:251) Log Type: stdout Log Upload Time: Mon Jul 24 10:47:38 +0800 2023 Log Length: 74530 Showing 4096 bytes of 74530 total. Click here for the full log. 35517561_3806_01_000001: PRELAUNCH_OUT=/yarn/container-logs/application_1683335517561_3806/container_1683335517561_3806_01_000001/prelaunch.out: NM_AUX_SERVICE_mapreduce_shuffle=AAA0+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=: NM_PORT=8041: HADOOP_YARN_HOME=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-yarn: USER=admin: CLASSPATH=/yarn/nm/usercache/admin/appcache/application_1683335517561_3806/container_1683335517561_3806_01_000001:/yarn/nm/usercache/admin/appcache/application_1683335517561_3806/container_1683335517561_3806_01_000001/*:/etc/hadoop/conf.cloudera.yarn:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop/*:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop/lib/*:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-hdfs/*:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-hdfs/lib/*:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-yarn/*:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop-yarn/lib/*:: PRELAUNCH_ERR=/yarn/container-logs/application_1683335517561_3806/container_1683335517561_3806_01_000001/prelaunch.err: HADOOP_TOKEN_FILE_LOCATION=/yarn/nm/usercache/admin/appcache/application_1683335517561_3806/container_1683335517561_3806_01_000001/container_tokens: LOCAL_USER_DIRS=/yarn/nm/usercache/admin/: OOZIE_ACTION_CONF_XML=/yarn/nm/usercache/admin/appcache/application_1683335517561_3806/container_1683335517561_3806_01_000001/action.xml: SHLVL=2: HOME=/home/: CONTAINER_ID=container_1683335517561_3806_01_000001: MALLOC_ARENA_MAX=4:怎么回事
根据您提供的日志,看起来您在运行 Sqoop 时遇到了一个 NullPointerException 异常。异常堆栈跟踪显示在 SqoopOptions 类的 writeProperties 方法中出现了空指针异常,而导致此异常的原因是在 SqoopJsonUtil 类中的 getJsonStringforMap 方法中使用了空的 JSONObject。
要解决这个问题,您可以尝试以下几个步骤:
1. 检查您的 Sqoop 配置文件中是否有任何错误或缺失的配置。确保所有必要的配置项都已正确设置,并且没有任何错误。
2. 检查您的输入数据是否有效,并且没有任何问题导致 Sqoop 无法解析或处理输入数据。确保您的输入数据符合 Sqoop 的要求,并且没有任何格式或内容上的问题。
3. 确保您正在使用的 Sqoop 版本与您的环境兼容,并且已正确安装和配置。检查 Sqoop 的版本和依赖项,确保它们与您当前的环境兼容。
4. 如果问题仍然存在,请尝试重新安装或更新 Sqoop,并确保使用最新版本。有时候,旧版本可能存在一些已知的问题或错误,通过更新或升级到最新版本可以解决这些问题。
如果上述步骤无法解决问题,请提供更多关于您的环境配置、Sqoop 版本、输入数据和任何其他相关信息,以便我们能够更好地帮助您解决此问题。
阅读全文